#include <iostream>
#include<vector>
#include<map>
using namespace std;
using ll = long long;

void solve() 
{
    int n; // 序列长度
    ll x, k; // x为初始位置，k为最大步数
    string s; // 操作序列
    cin >> n >> x >> k >> s;

    vector<ll> ps(n + 1, 0); // 前缀和数组
    map<ll, int> fo; // 记录前缀和首次出现的位置

    for (int i = 1; i <= n; ++i) 
    {
        char c = s[i - 1];
        ll delta = (c == 'R') ? 1 : -1; // 根据方向计算增量
        ps[i] = ps[i - 1] + delta; // 更新前缀和
        if (!fo.count(ps[i])) 
        { // 如果当前前缀和是第一次出现
            fo[ps[i]] = i; // 记录位置
        }
    }

    ll cnt = 0; // 计数器
    bool fs = false; // 是否找到阶段1标志
    ll ts1 = -x; // 阶段1目标值

    if (fo.count(ts1)) { // 如果目标值存在
        int m1 = fo[ts1];
        if (m1 <= k) { // 如果到达目标所需步数不超过最大步数
            cnt = 1; // 计数加一
            k -= m1; // 减去已用步数
            fs = true; // 标记找到阶段1
        }
    }

    if (!fs && ps[n] == ts1 && n <= k) { // 如果通过完整遍历达到目标且步数足够
        cnt = 1; // 计数加一
        k -= n; // 减去已用步数
        fs = true; // 标记找到阶段1
    }

    if (!fs) { // 如果未找到阶段1
        cout << 0 << '\n'; // 输出0
        return;
    }

    if (k <= 0) { // 如果剩余步数小于等于0
        cout << cnt << '\n'; // 输出计数结果
        return;
    }

    int m2 = -1; // 初始化阶段2起点索引
    if (fo.count(0)) { // 如果前缀和中包含0
        m2 = fo[0]; // 获取0的首次出现位置
    }

    if (m2 != -1) { // 如果找到阶段2起点
        ll cnt2 = k / m2; // 计算可以重复走的次数
        cnt += cnt2; // 更新计数
        ll rem = k % m2; // 计算剩余步数
        if (rem > 0) { // 如果有剩余步数
            int lim = min(rem, (ll)n); // 确定搜索范围
            for (int i = 1; i <= lim; ++i) {
                if (ps[i] == 0) { // 如果在剩余步数内找到新的循环起点
                    cnt += 1; // 计数加一
                    break;
                }
            }
        }
    } else if (ps[n] == 0) { // 如果整个序列和为0
        ll cnt2 = k / n; // 计算完整遍历次数
        cnt += cnt2; // 更新计数
        ll rem = k % n; // 计算剩余步数
        if (rem > 0 && ps[rem] == 0) { // 如果剩余步数后仍能回到原点
            cnt += 1; // 计数加一
        }
    }

    cout << cnt << '\n'; // 输出最终计数
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);

    int t; // 测试用例数量
    cin >> t;
    while (t--) {
        solve(); // 解决每个测试用例
    }

    return 0;
}